package com.hncc.kumao.util;

/**
 * 存储常量
 * @author chen
 *
 */
public class ConstValue {
    
    private static PropertiesUtils propUtils;
    
    static{
        try {
            propUtils = new PropertiesUtils("conf/kumao.properties");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    /**
     * 用于生成jwt的key
     */
    public static final String JWT_KEY = "kumao_server_create_jwt_key";
    /**
     * Redis中存储用户令牌的Key
     */
    public static final String SERVER_TOKEN = "server_token";
    /**
     * Redis中存储离线任务下载进度的key
     */
    public static final String OFFLINE_DOWNLOAD_TASK_PROGRESS_TATE = "offline_download_task_progress_rate";
    /**
     * Redis中存储各个用户离线任务ID的key
     */
    public static final String USER_OFFLINE_DOWNLOAD_TASK_ID_LIST = "user_offline_download_task_id_list";
    /**
     * Redis中存储正常离线下载任务ID的key
     */
    public static final String OFFLINE_DOWNLOAD_NORMAL_QUEUE = "offline_download_normal_queue";
    /**
     * Redis中存储正常离线下载正在进行中的任务ID的key
     */
    public static final String OFFLINE_DOWNLOAD_NORMAL_TASK = "offline_download_normal_task";
    /**
     * Redis中存储正常离线下载任务最大并行数量的key
     */
    public static final String OFFLINE_DOWNLOAD_NORMAL_PARALLEL_NUMBER = "offline_download_normal_parallel_number";
    /**
     * Redis中存储尝试重新连接的离线下载任务ID的key
     */
    public static final String OFFLINE_DOWNLOAD_RETRY_QUEUE = "offline_download_retry_queue";
    /**
     * Redis中存储等待重新连接的离线下载任务ID的key
     */
    public static final String OFFLINE_DOWNLOAD_RETRY_WAIT = "offline_download_retry_wait";
    /**
     * Redis中存储重新连接成功的离线下载正在进行中的任务ID的key
     */
    public static final String OFFLINE_DOWNLOAD_RETRY_TASK = "offline_download_retry_task";
    /**
     * Redis中存储重新连接离线下载任务最大并行数量的key
     */
    public static final String OFFLINE_DOWNLOAD_RETRY_PARALLEL_NUMBER = "offline_download_retry_parallel_number";
    /**
     * Redis中存储断点上传任务当前上传的是第几个片段的key
     */
    public static final String BREAKPOINT_UPLOAD_CURRENT_FRAGMENT = "breakpoint_upload_current_fragment";
    /**
     * Redis中存储断点上传任务信息的key
     */
    public static final String BREAKPOINT_UPLOAD_SUCCESS_FRAGMENT = "breakpoint_upload_success_fragment";
    /**
     * Redis中存储断点上传任务信息的key
     */
    public static final String BREAKPOINT_UPLOAD_TASK_INFO = "breakpoint_upload_task_info";
    /**
     * 用于返回的json字段
     */
    public static final String SUCCESS = "success";
    /**
     * 用于返回的json字段
     */
    public static final String DATA = "data";
    /**
     * 用于返回的json字段
     */
    public static final String CODE = "code";
    /**
     * 返回码: 成功
     */
    public static final int RESULT_CODE_SUCCESS = 200;
    /**
     * 返回码: 请求错误
     */
    public static final int RESULT_CODE_BAD_REQUEST = 400;
    /**
     * 返回码: 服务端出错
     */
    public static final int RESULT_CODE_SERVER_ERROR = 500;
    /**
     * 从request中取出请求数据的key
     */
    public static final String REQUEST_DATA = "requestData";
    /**
     * 从request中取出请求id的key
     */
    public static final String REQUEST_USER_ID = "requestUserId";
    /**
     * 获取文件资源的基本网址
     */
    public static final String BASE_RES_URL = propUtils.get("const.baseResUrl");
    /**
     * 服务器上文件在本地存储的基本目录
     */
    public static final String BASE_RES_PATH = propUtils.get("const.baseResPath");
    /**
     * 存储下载任务的目录名称
     */
    public static final String DOWNLOAD_DIR_NAME = "offlinedownload";
    /**
     * 存储上传任务的目录名称
     */
    public static final String IMAGE_DIR_NAME = "image";
    /**
     * 存储图片的目录名称
     */
    public static final String UPLOAD_DIR_NAME = "breakupload";
    /**
     * 上传图片支持类型
     */
    public static final String IMAGE_TYPE = ".jpeg.png.jpg";
    /**
     * 网盘类型: 百度网盘类型
     */
    public static final int NETDISK_TYPE_BAIDU = 1;
    /**
     * 网盘类型: 坚果云类型
     */
    public static final int NETDISK_TYPE_JIANGUOYUN = 2;
    /**
     * 网盘类型: FTP类型
     */
    public static final int NETDISK_TYPE_FTP = 3;
    /**
     * 网盘类型: Seafile类型
     */
    public static final int NETDISK_TYPE_SEAFILE = 4;
    /**
     * 网盘类型: SMB类型
     */
    public static final int NETDISK_TYPE_SMB = 5;
    /**
     * 令牌类型: access_token字符串
     */
    public static final int TOKEN_TYPE_ACCESS_TOKEN = 1;
    /**
     * 令牌类型: 用户名密码
     */
    public static final int TOKEN_TYPE_USERNAME_PASSWORD = 2;
    /**
     * 令牌类型: 匿名访问
     */
    public static final int TOKEN_TYPE_ANONYMITY = 3;
    /**
     * 离线下载任务状态: 新建
     */
    public static final int OD_TASK_STATE_NEW = 0;
    /**
     * 离线下载任务状态: 进行中
     */
    public static final int OD_TASK_STATE_GOING = 1;
    /**
     * 离线下载任务状态: 完成
     */
    public static final int OD_TASK_STATE_SUCCESS = 2;
    /**
     * 离线下载任务状态: 取消
     */
    public static final int OD_TASK_STATE_CANCEL = 3;
    /**
     * 离线下载任务状态: 等待重新连接
     */
    public static final int OD_TASK_STATE_RELINK = 4;
    /**
     * 离线下载任务状态: 失败
     */
    public static final int OD_TASK_STATE_FAIL = 5;
    /**
     * 离线下载任务状态: 任务已完成，但是下载的文件已删除
     */
    public static final int OD_TASK_STATE_REMOVE = 6;
    /**
     * 离线下载任务状态: 删除
     */
    public static final int OD_TASK_STATE_DELETE = 7;
    /**
     * 是否转存: 是
     */
    public static final int OD_IS_TRANSFER_YTE = 1;
    /**
     * 是否转存: 否
     */
    public static final int OD_IS_TRANSFER_NO = 0;
    /**
     * 重试时间级别1(单位为秒)
     */
    public static final int RETRY_TIME_LEVEL1 = 10;
    /**
     * 重试时间级别2(单位为秒)
     */
    public static final int RETRY_TIME_LEVEL2 = 30;
    /**
     * 重试时间级别3(单位为秒)
     */
    public static final int RETRY_TIME_LEVEL3 = 60;
    /**
     * 重试时间级别4(单位为秒)
     */
    public static final int RETRY_TIME_LEVEL4 = 120;
    /**
     * 重试时间级别5(单位为秒)
     */
    public static final int RETRY_TIME_LEVEL5 = 180;
    /**
     * 重试时间级别6(单位为秒)
     */
    public static final int RETRY_TIME_LEVEL6 = 240;
    /**
     * 重试时间级别7(单位为秒)
     */
    public static final int RETRY_TIME_LEVEL7 = 300;
    /**
     * 重试时间级别8(单位为秒)
     */
    public static final int RETRY_TIME_LEVEL8 = 360;
    /**
     * 重试时间级别9(单位为秒)
     */
    public static final int RETRY_TIME_LEVEL9 = 420;
    /**
     * 重试时间级别10(单位为秒)
     */
    public static final int RETRY_TIME_LEVEL10 = 480;
    /**
     * 重试时间级别11(单位为秒)
     */
    public static final int RETRY_TIME_LEVEL11 = 540;
    /**
     * 重试时间级别12(单位为秒)
     */
    public static final int RETRY_TIME_LEVEL12 = 600;
    /**
     * 重试时间级别13(单位为秒)
     */
    public static final int RETRY_TIME_LEVEL13 = 1200;
    /**
     * 重试时间级别14(单位为秒)
     */
    public static final int RETRY_TIME_LEVEL14 = 1800;
    /**
     * 重试时间级别15(单位为秒)
     */
    public static final int RETRY_TIME_LEVEL15 = 3600;
    /**
     * 重试时间级别16(单位为秒)
     */
    public static final int RETRY_TIME_LEVEL16 = 7200;
    /**
     * 重试时间超出最大限制
     */
    public static final int RETRY_TIME_LEVEL_END = -1;
    
    /**
     * 断点上传任务状态: 新建
     */
    public static final int BU_TASK_STATE_CREATE = 0;
    /**
     * 断点上传任务状态: 正在接收文件
     */
    public static final int BU_TASK_STATE_GET_File = 1;
    /**
     * 断点上传任务状态: 暂停接收文件
     */
    public static final int BU_TASK_STATE_PAUSE_GET_File = 2;
    /**
     * 断点上传任务状态: 接收文件完成
     */
    public static final int BU_TASK_STATE_GET_File_SUCCESS = 3;
    /**
     * 断点上传任务状态: 接收文件失败
     */
    public static final int BU_TASK_STATE_GET_File_FAIL = 4;
    /**
     * 断点上传任务状态: 正在向网盘上传文件
     */
    public static final int BU_TASK_STATE_UPLOAD_FILE = 5;
    /**
     * 断点上传任务状态: 向网盘上传文件完成
     */
    public static final int BU_TASK_STATE_UPLOAD_SUCCESS = 6;
    /**
     * 断点上传任务状态: 向网盘上传文件失败
     */
    public static final int BU_TASK_STATE_UPLOAD_FAIL = 7;
    /**
     * 断点上传任务状态: 取消断点上传任务
     */
    public static final int BU_TASK_STATE_CANCEL = 8;
    /**
     * 断点上传任务状态: 任务已删除
     */
    public static final int BU_TASK_STATE_DELETE = 9;
    
    /**
     * 断点上传日期类型: 创建时间
     */
    public static final int BU_TASK_DATE_CREATE_TIME = 0;
    /**
     * 断点上传日期类型: 开始接收分片时间
     */
    public static final int BU_TASK_DATE_START_GET_TIME = 1;
    /**
     * 断点上传日期类型: 结束接收分片时间
     */
    public static final int BU_TASK_DATE_END_GET_TIME = 2;
    /**
     * 断点上传日期类型: 开始向网盘上传时间
     */
    public static final int BU_TASK_DATE_START_UPLOAD_TIME = 3;
    /**
     * 断点上传日期类型: 结束向网盘上传时间
     */
    public static final int BU_TASK_DATE_END_UPLOAD_TIME = 4;
    /**
     * 转存任务状态: 新建
     */
    public static final int TRANSFER_TASK_STATE_CREATE = 0;
    /**
     * 转存任务状态: 进行中
     */
    public static final int TRANSFER_TASK_STATE_GOING = 1;
    /**
     * 转存任务状态: 完成
     */
    public static final int TRANSFER_TASK_STATE_SUCCESS = 2;
    /**
     * 转存任务状态: 取消
     */
    public static final int TRANSFER_TASK_STATE_CANCEL = 3;
    /**
     * 转存任务状态: 失败
     */
    public static final int TRANSFER_TASK_STATE_FAIL = 4;
}
